
package com.advam.storedpan.v2.storedpan;

import java.math.BigDecimal;
import java.math.BigInteger;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * 
 * 		        Represents a transaction request that can be sent to the Advam gateway.
 * 		      
 * 
 * <p>Java class for LoadTransactionRequest complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="LoadTransactionRequest">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;all>
 *         &lt;element name="AdvamAccount" type="{http://storedpan.advam.com/V2/StoredPAN}AdvamAccount"/>
 *         &lt;element name="OperatorUsername" type="{http://storedpan.advam.com/V2/StoredPAN}OperatorUsername"/>
 *         &lt;element name="OperatorPassword" type="{http://storedpan.advam.com/V2/StoredPAN}OperatorPassword" minOccurs="0"/>
 *         &lt;element name="PanId" type="{http://storedpan.advam.com/V2/StoredPAN}PanId"/>
 *         &lt;element name="Action" type="{http://storedpan.advam.com/V2/StoredPAN}Action"/>
 *         &lt;element name="Amount" type="{http://storedpan.advam.com/V2/StoredPAN}Amount"/>
 *         &lt;element name="MerchantReference" type="{http://storedpan.advam.com/V2/StoredPAN}MerchantReference" minOccurs="0"/>
 *         &lt;element name="PreAuthorisation" type="{http://storedpan.advam.com/V2/StoredPAN}PreAuthorisation" minOccurs="0"/>
 *         &lt;element name="OriginalReceipt" type="{http://storedpan.advam.com/V2/StoredPAN}OriginalReceipt" minOccurs="0"/>
 *         &lt;element name="EffectiveDate" type="{http://storedpan.advam.com/V2/StoredPAN}EffectiveDate" minOccurs="0"/>
 *         &lt;element name="CardVerificationValue" type="{http://storedpan.advam.com/V2/StoredPAN}CardVerificationValue" minOccurs="0"/>
 *         &lt;element name="CardHolderName" type="{http://storedpan.advam.com/V2/StoredPAN}CardHolderName" minOccurs="0"/>
 *         &lt;element name="ExpiryMonth" type="{http://storedpan.advam.com/V2/StoredPAN}ExpiryMonth" minOccurs="0"/>
 *         &lt;element name="ExpiryYear" type="{http://storedpan.advam.com/V2/StoredPAN}ExpiryYear" minOccurs="0"/>
 *         &lt;element name="StartMonth" type="{http://storedpan.advam.com/V2/StoredPAN}StartMonth" minOccurs="0"/>
 *         &lt;element name="StartYear" type="{http://storedpan.advam.com/V2/StoredPAN}StartYear" minOccurs="0"/>
 *         &lt;element name="IssueNo" type="{http://storedpan.advam.com/V2/StoredPAN}IssueNo" minOccurs="0"/>
 *         &lt;element name="BatchCode" type="{http://storedpan.advam.com/V2/StoredPAN}BatchCode" minOccurs="0"/>
 *         &lt;element name="BatchId" type="{http://storedpan.advam.com/V2/StoredPAN}BatchId" minOccurs="0"/>
 *         &lt;element name="ThreeDSecureIndicator" type="{http://storedpan.advam.com/V2/StoredPAN}ThreeDSecureIndicator" minOccurs="0"/>
 *         &lt;element name="ThreeDSecureXid" type="{http://storedpan.advam.com/V2/StoredPAN}ThreeDSecureXid" minOccurs="0"/>
 *         &lt;element name="ThreeDSecureAuthValue" type="{http://storedpan.advam.com/V2/StoredPAN}ThreeDSecureAuthValue" minOccurs="0"/>
 *         &lt;element name="ThreeDSecureAuthAlgorithm" type="{http://storedpan.advam.com/V2/StoredPAN}ThreeDSecureAuthAlgorithm" minOccurs="0"/>
 *       &lt;/all>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "LoadTransactionRequest", propOrder = {

})
public class LoadTransactionRequest {

    @XmlElement(name = "AdvamAccount", required = true)
    protected String advamAccount;
    @XmlElement(name = "OperatorUsername", required = true)
    protected String operatorUsername;
    @XmlElement(name = "OperatorPassword")
    protected String operatorPassword;
    @XmlElement(name = "PanId", required = true)
    protected String panId;
    @XmlElement(name = "Action", required = true)
    protected Action action;
    @XmlElement(name = "Amount", required = true)
    protected BigDecimal amount;
    @XmlElement(name = "MerchantReference")
    protected String merchantReference;
    @XmlElement(name = "PreAuthorisation")
    protected String preAuthorisation;
    @XmlElement(name = "OriginalReceipt")
    protected String originalReceipt;
    @XmlElement(name = "EffectiveDate")
    protected XMLGregorianCalendar effectiveDate;
    @XmlElement(name = "CardVerificationValue")
    protected String cardVerificationValue;
    @XmlElement(name = "CardHolderName")
    protected String cardHolderName;
    @XmlElement(name = "ExpiryMonth")
    protected String expiryMonth;
    @XmlElement(name = "ExpiryYear")
    protected String expiryYear;
    @XmlElement(name = "StartMonth")
    protected String startMonth;
    @XmlElement(name = "StartYear")
    protected String startYear;
    @XmlElement(name = "IssueNo")
    protected String issueNo;
    @XmlElement(name = "BatchCode")
    protected String batchCode;
    @XmlElement(name = "BatchId")
    protected BigInteger batchId;
    @XmlElement(name = "ThreeDSecureIndicator")
    protected BigInteger threeDSecureIndicator;
    @XmlElement(name = "ThreeDSecureXid")
    protected String threeDSecureXid;
    @XmlElement(name = "ThreeDSecureAuthValue")
    protected String threeDSecureAuthValue;
    @XmlElement(name = "ThreeDSecureAuthAlgorithm")
    protected String threeDSecureAuthAlgorithm;

    /**
     * Gets the value of the advamAccount property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAdvamAccount() {
        return advamAccount;
    }

    /**
     * Sets the value of the advamAccount property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAdvamAccount(String value) {
        this.advamAccount = value;
    }

    /**
     * Gets the value of the operatorUsername property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getOperatorUsername() {
        return operatorUsername;
    }

    /**
     * Sets the value of the operatorUsername property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setOperatorUsername(String value) {
        this.operatorUsername = value;
    }

    /**
     * Gets the value of the operatorPassword property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getOperatorPassword() {
        return operatorPassword;
    }

    /**
     * Sets the value of the operatorPassword property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setOperatorPassword(String value) {
        this.operatorPassword = value;
    }

    /**
     * Gets the value of the panId property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPanId() {
        return panId;
    }

    /**
     * Sets the value of the panId property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPanId(String value) {
        this.panId = value;
    }

    /**
     * Gets the value of the action property.
     * 
     * @return
     *     possible object is
     *     {@link Action }
     *     
     */
    public Action getAction() {
        return action;
    }

    /**
     * Sets the value of the action property.
     * 
     * @param value
     *     allowed object is
     *     {@link Action }
     *     
     */
    public void setAction(Action value) {
        this.action = value;
    }

    /**
     * Gets the value of the amount property.
     * 
     * @return
     *     possible object is
     *     {@link BigDecimal }
     *     
     */
    public BigDecimal getAmount() {
        return amount;
    }

    /**
     * Sets the value of the amount property.
     * 
     * @param value
     *     allowed object is
     *     {@link BigDecimal }
     *     
     */
    public void setAmount(BigDecimal value) {
        this.amount = value;
    }

    /**
     * Gets the value of the merchantReference property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMerchantReference() {
        return merchantReference;
    }

    /**
     * Sets the value of the merchantReference property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMerchantReference(String value) {
        this.merchantReference = value;
    }

    /**
     * Gets the value of the preAuthorisation property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPreAuthorisation() {
        return preAuthorisation;
    }

    /**
     * Sets the value of the preAuthorisation property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPreAuthorisation(String value) {
        this.preAuthorisation = value;
    }

    /**
     * Gets the value of the originalReceipt property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getOriginalReceipt() {
        return originalReceipt;
    }

    /**
     * Sets the value of the originalReceipt property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setOriginalReceipt(String value) {
        this.originalReceipt = value;
    }

    /**
     * Gets the value of the effectiveDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getEffectiveDate() {
        return effectiveDate;
    }

    /**
     * Sets the value of the effectiveDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setEffectiveDate(XMLGregorianCalendar value) {
        this.effectiveDate = value;
    }

    /**
     * Gets the value of the cardVerificationValue property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCardVerificationValue() {
        return cardVerificationValue;
    }

    /**
     * Sets the value of the cardVerificationValue property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCardVerificationValue(String value) {
        this.cardVerificationValue = value;
    }

    /**
     * Gets the value of the cardHolderName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCardHolderName() {
        return cardHolderName;
    }

    /**
     * Sets the value of the cardHolderName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCardHolderName(String value) {
        this.cardHolderName = value;
    }

    /**
     * Gets the value of the expiryMonth property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getExpiryMonth() {
        return expiryMonth;
    }

    /**
     * Sets the value of the expiryMonth property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setExpiryMonth(String value) {
        this.expiryMonth = value;
    }

    /**
     * Gets the value of the expiryYear property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getExpiryYear() {
        return expiryYear;
    }

    /**
     * Sets the value of the expiryYear property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setExpiryYear(String value) {
        this.expiryYear = value;
    }

    /**
     * Gets the value of the startMonth property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getStartMonth() {
        return startMonth;
    }

    /**
     * Sets the value of the startMonth property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setStartMonth(String value) {
        this.startMonth = value;
    }

    /**
     * Gets the value of the startYear property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getStartYear() {
        return startYear;
    }

    /**
     * Sets the value of the startYear property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setStartYear(String value) {
        this.startYear = value;
    }

    /**
     * Gets the value of the issueNo property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getIssueNo() {
        return issueNo;
    }

    /**
     * Sets the value of the issueNo property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setIssueNo(String value) {
        this.issueNo = value;
    }

    /**
     * Gets the value of the batchCode property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getBatchCode() {
        return batchCode;
    }

    /**
     * Sets the value of the batchCode property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setBatchCode(String value) {
        this.batchCode = value;
    }

    /**
     * Gets the value of the batchId property.
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getBatchId() {
        return batchId;
    }

    /**
     * Sets the value of the batchId property.
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setBatchId(BigInteger value) {
        this.batchId = value;
    }

    /**
     * Gets the value of the threeDSecureIndicator property.
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getThreeDSecureIndicator() {
        return threeDSecureIndicator;
    }

    /**
     * Sets the value of the threeDSecureIndicator property.
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setThreeDSecureIndicator(BigInteger value) {
        this.threeDSecureIndicator = value;
    }

    /**
     * Gets the value of the threeDSecureXid property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getThreeDSecureXid() {
        return threeDSecureXid;
    }

    /**
     * Sets the value of the threeDSecureXid property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setThreeDSecureXid(String value) {
        this.threeDSecureXid = value;
    }

    /**
     * Gets the value of the threeDSecureAuthValue property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getThreeDSecureAuthValue() {
        return threeDSecureAuthValue;
    }

    /**
     * Sets the value of the threeDSecureAuthValue property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setThreeDSecureAuthValue(String value) {
        this.threeDSecureAuthValue = value;
    }

    /**
     * Gets the value of the threeDSecureAuthAlgorithm property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getThreeDSecureAuthAlgorithm() {
        return threeDSecureAuthAlgorithm;
    }

    /**
     * Sets the value of the threeDSecureAuthAlgorithm property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setThreeDSecureAuthAlgorithm(String value) {
        this.threeDSecureAuthAlgorithm = value;
    }

}
